<!DOCTYPE html>
<html lang="zh-CN">
<head>


    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes" />
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="renderer" content="webkit">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>蓝牙测试</title>
    　　<link rel="apple-touch-icon" href="/apple-touch-icon.png（180*180）">
    　　<link rel="icon" href="/favicon.ico（32*32）">
    <!--<script src=”//api.html5media.info/1.1.8/html5media.min.js></script>-->
    <script src="//cdn.jsdelivr.net/npm/eruda"></script>
    <script src="./CRCStuff.js"></script>
    <script src="./calData.js"></script>
    <script>eruda.init();</script>

    <script>

        function setNotify(){

            var deviceId = window.hilink.getStorageSync('deviceId');
            var serviceId = window.hilink.getStorageSync('serviceId');
            var characteristicId = window.hilink.getStorageSync('characteristicId');
            window.hilink.notifyBLECharacteristicValueChange(deviceId,serviceId,characteristicId,true);
            window.hilink.onBLECharacteristicValueChange ("ValueChange");
        }
        window.hilink.onBLEConnectionStateChange ("connetState");

        function openBluetoothAdapterJS(){
            var err= window.hilink.openBluetoothAdapter();
            console.log("openBluetoothAdapterJS "+err);
        }

        function closeBluetoothAdapterJS(){
            var err= window.hilink.closeBluetoothAdapter();
            console.log("closeBluetoothAdapterJS "+err);
        }

        function createBLEConnectionJS(){


            var deviceId = window.hilink.getStorageSync('deviceId');
            var serviceId = window.hilink.getStorageSync('serviceId');
            var characteristicId = window.hilink.getStorageSync('characteristicId');
//            var deviceId = 'ED14081B-52B5-544B-A211-45FAE38CE869';
            var retCode = window.hilink.createBLEConnection(deviceId);

            console.log("javascript:retCode ="+retCode);
            ;
        }

        function connetState(re)
        {
            var data = eval("("+re+")")
            if(data.connected==true) {
                console.log('连接状态'+data.connected)
//                window.hilink.onBLECharacteristicValueChange ("ValueChange");
//                setNotify();
            }else {
                console.log('连接状态'+data.connected)
            }
        }

        function ValueChange(re)
        {
            var valueC = eval("("+re+")");
            var data = valueC.data;
            var dataArr = readTo10(data);
//            console.log("读取寄存器数据，一个数组"+data);
//            console.log("读取寄存器数据，一个数组"+dataArr);
            console.log(dataArr)
//            console.log("读取寄存器数据，一个数组"+dataArr);

//
//            var CRCreciverARR = _CRCJS.receiver(dataArr);
//
//            console.log("解析数组为值"+CRCreciverARR[0].data);
//            console.log("当前状态下进行臀洗的值："+(1<<9)^CRCreciverARR[0].data)
//            console.log("valueC:"+re);
//
//            var wrTore = _CRCJS.getF06String(1,50,(1<<9)^CRCreciverARR[0].data);
//            console.log("06写入：1,50（起始）,（当前状态下操作值）");
//            var deviceId = window.hilink.getStorageSync('deviceId');
//            var serviceId = window.hilink.getStorageSync('serviceId');
//            var characteristicId = window.hilink.getStorageSync('characteristicId');
//            var data = JSON.stringify(wrTore);
//            window.hilink.writeBLECharacteristicValue(deviceId, serviceId, characteristicId, data,"writeCall");
        }

        var writeTo16 = function (dataArr) {
            var newstr = '';
            for(var i = 0;i< dataArr.length;i++) {
                var str16 = (Array(2).join(0) + dataArr[i].toString(16)).slice(-2);
                newstr += str16
            }
            return newstr;
        }
        var  readTo10 = function (dataStr) {
            var newArr = new Array;
            for(var i = 0; i<dataStr.length;i=i+2) {
                newArr.push(parseInt(dataStr.substring(i,i+2),16))
            }
            return newArr;
        }

        function StringToArr(stringObject)
        {
            var arr = new Array;
            stringObject = stringObject.substr(1,stringObject.length)
            stringObject = stringObject.substr(0,stringObject.length-1);
            strs=stringObject.split(","); //字符分割
            for (i=0;i<strs.length ;i++ )
            {
                arr.push(parseInt(strs[i]));
            }
            return arr;
        }

        function closeBLEConnectionJS(){
            var retCode = window.hilink.closeBLEConnection('ED14081B-52B5-544B-A211-45FAE38CE869');
//            console.log("javascript:retCode ="+retCode);
        }
        function writeBLECharacteristicValueJS(){
//            var deviceId = window.hilink.getStorageSync('deviceId');
//            var serviceId = window.hilink.getStorageSync('serviceId');
//            var characteristicId = window.hilink.getStorageSync('characteristicId');

//            var ByteArrData = window.document.getElementById('ByteArrData')
//            var buf ;
//            if(ByteArrData.value){
//                buf = ByteArrData.value;
//            } else {
//                var buf = [1,3,0,50,0,30,100,13];
//            }
//            console.log(buf)

//            var buf = [1,3,0,50,0,30,100,13];

//            console.log('deviceId:'+deviceId);
//            console.log('serviceId:'+serviceId);
//            console.log('characteristicId:'+characteristicId);
//            console.log('buf:'+buf);
//            var data = writeTo16(buf);
//            var callback="onCharacterWrite";
//            var retCode =window.hilink.writeBLECharacteristicValue(deviceId, serviceId, characteristicId, data,callback);
//            console.log("javascript:retCode ="+retCode);
//            setInterval('interWrite()',1000)
            interWrite()
        }

        function interWrite(){
//            console.log('aa')
            var deviceId = window.hilink.getStorageSync('deviceId');
            var serviceId = window.hilink.getStorageSync('serviceId');
            var characteristicId = window.hilink.getStorageSync('characteristicId');
            var data = writeTo16([1,3,0,50,0,30,100,13]);
            var callback="onCharacterWrite";
            var retCode =window.hilink.writeBLECharacteristicValue(deviceId, serviceId, characteristicId, data,callback);
        }

        function onCharacterWrite(re){
            console.log("aaa"+re);
//            readBLECharacteristicValueJS()
        }


        function readBLECharacteristicValueJS(){
            var deviceId = window.hilink.getStorageSync('deviceId');
            var serviceId = window.hilink.getStorageSync('serviceId');
            var characteristicId = window.hilink.getStorageSync('characteristicId');
            var callback="onCharacterRead"
            var data = window.hilink.readBLECharacteristicValue(deviceId, serviceId, characteristicId,callback);
            console.log("javascript:data ="+data);
        }

        function onCharacterRead(re){
            console.log("bbb"+re);
        }



    </script>

</head>


<body>
<div style="margin: auto;border: 1px  solid royalblue">
    <h5>设置设备信息</h5>
    <div id="setConfDiv">
        <div style="background-color: white;margin-top: 10px;">
            <input id="deviceId" type="text" value="ED14081B-52B5-544B-A211-45FAE38CE869" placeholder="ED14081B-52B5-544B-A211-45FAE38CE869"> 设备ID
        </div>
        <div style="background-color: white;margin-top: 10px;">
            <!--<input id="serviceId" value="0000ffe0-0000-1000-8000-00805f9b34fb" placeholder="0000ffe0-0000-1000-8000-00805f9b34fb"> serviceId 服务UUID-->
            <input id="serviceId" value="ffe0" placeholder="0000ffe0-0000-1000-8000-00805f9b34fb"> serviceId 服务UUID
        </div>
        <div style="background-color: white;margin-top: 10px;">
            <input id="characteristicId" value="ffe1" placeholder="0000ffe1-0000-1000-8000-00805f9b34fb"> characteristicId 特征码UUID
            <!--<input id="characteristicId" value="0000ffe1-0000-1000-8000-00805f9b34fb" placeholder="0000ffe1-0000-1000-8000-00805f9b34fb"> characteristicId 特征码UUID-->
        </div>
    </div>

    <div style="background-color: white;margin-top: 10px;">
        <button id="setConf" onclick="setConf()">设置</button>
    </div>
    <div style="background-color: white;margin-top: 10px;">
        <button id="reConf" onclick="reConf()">重置</button>
    </div>
</div>

<div style="margin-top: 10px;border: 1px  solid royalblue">
    <div style="background-color: white;margin-top: 10px;">
        <button id='btn00' type='submit' onclick='openBluetoothAdapterJS()'>开启蓝牙</button>
    </div>

    <div>
        <div style="background-color: white;margin-top: 10px;">
            <button id='btn01' type='submit' onclick="createBLEConnectionJS()">连接设备</button>
        </div>
        <code>
            var deviceId = "ED14081B-52B5-544B-A211-45FAE38CE869";<br >
            var retCode = window.hilink.createBLEConnection(deviceId);
        </code>
        <br>
    </div>
    <br>
</div>

<div style="margin-top: 10px;border: 1px  solid royalblue">
    <div style="background-color: white;margin-top: 10px;">
        <button id='btn055' type='submit' onclick='setNotify()'>设置notify</button>
    </div>
    <code>
        function setNotify(){

        var deviceId = window.hilink.getStorageSync('deviceId');
        var serviceId = window.hilink.getStorageSync('serviceId');
        var characteristicId = window.hilink.getStorageSync('characteristicId');
        window.hilink.notifyBLECharacteristicValueChange(deviceId,serviceId,characteristicId,true);
        }
    </code>
</div>

<div style="margin-top: 10px;border: 1px  solid royalblue">
    <div style="background-color: white;margin-top: 10px;">
        <button id='btn03' type='submit' onclick='closeBLEConnectionJS()'>关闭连接</button>
    </div>
    <code>
        var retCode = window.hilink.closeBLEConnection();<br >
        console.log("javascript:retCode ="+retCode);
    </code>
</div>

<div style="margin-top: 10px;border: 1px  solid royalblue">
    <div>
        <div style="background-color: white;margin-top: 10px;">
            <input type="text" id="ByteArrData" placeholder="[1,3,0,50,0,30,100,13]">输入byte数组
        </div>
        <div style="background-color: white;margin-top: 10px;">
            <button id='btn001' type='submit' onclick="writeBLECharacteristicValueJS()">向蓝牙设备写数据</button>
        </div>
        <code>
            var deviceId = "ED14081B-52B5-544B-A211-45FAE38CE869";<br >
            var serviceId = "0000ffe0-0000-1000-8000-00805f9b34fb";<br >
            var characteristicId = "0000ffe1-0000-1000-8000-00805f9b34fb";<br >

            var buf = [1,3,0,50,0,30,100,13];<br >
            var data = JSON.stringify(buf);<br >
            var callback="onCharacterWrite";<br >
            var retCode =window.hilink.writeBLECharacteristicValue(deviceId, serviceId, characteristicId, data,callback);<br >
            console.log("javascript:retCode ="+retCode);<br >

            function onCharacterWrite(re){<br >
            console.log("aaa"+re);<br >
            readBLECharacteristicValueJS()<br >
            }<br >
        </code>
    </div>
</div>

<div style="margin-top: 10px;border: 1px  solid royalblue">
    <div>
        <div style="background-color: white;margin-top: 10px;">
            <button id='btn02' type='submit' onclick="readBLECharacteristicValueJS()">读取蓝牙设备数据</button>
        </div>
        <code>
            var deviceId = "ED14081B-52B5-544B-A211-45FAE38CE869";<br >
            var serviceId = "0000ffe0-0000-1000-8000-00805f9b34fb";<br >
            var characteristicId = "0000ffe1-0000-1000-8000-00805f9b34fb";<br >
            var callback="onCharacterRead"<br >
            var data = window.hilink.readBLECharacteristicValue(deviceId, serviceId, characteristicId,callback);<br >
            console.log("javascript:data ="+data);<br >

            function onCharacterRead(re){<br >
            console.log("bbb"+re);<br >
            }<br >
        </code>
    </div>
</div>
<input id="deviceIddef" type="text">
<input id="serviceIddef" type="text" >
<input id="characteristicIddef" >

<div style="margin-top: 10px;border: 1px  solid royalblue">
    <div>
        <div style="background-color: white;margin-top: 10px;">
            <button id='btn044' type='submit' onclick="fangG()">读取一位蓝牙设备数据</button>
        </div>
        <code>
            var deviceId = "ED14081B-52B5-544B-A211-45FAE38CE869";<br >
            var serviceId = "0000ffe0-0000-1000-8000-00805f9b34fb";<br >
            var characteristicId = "0000ffe1-0000-1000-8000-00805f9b34fb";<br >
            var callback="onCharacterRead"<br >
            var data = window.hilink.readBLECharacteristicValue(deviceId, serviceId, characteristicId,callback);<br >
            console.log("javascript:data ="+data);<br >

            function onCharacterRead(re){<br >
            console.log("bbb"+re);<br >
            }<br >
        </code>
    </div>
</div>
<script>
    function fangG(){
        var wrTore = _CRCJS.getF03String(1,50,1);
        console.log("先写入：1,50（起始）,1(一个1位长度)");
        var deviceId = window.hilink.getStorageSync('deviceId');
        var serviceId = window.hilink.getStorageSync('serviceId');
        var characteristicId = window.hilink.getStorageSync('characteristicId');
        var data = JSON.stringify(wrTore);
        window.hilink.writeBLECharacteristicValue(deviceId, serviceId, characteristicId, data,"writeCall");
    }

    function writeCall(re)
    {
//        console.log(re)
    }

    window.onload = function(){

    }
    function setConf(){
        var setConfDiv = window.document.getElementById('setConfDiv');
        window.hilink.setStorageSync('deviceId', window.document.getElementById('deviceId').value)
        window.hilink.setStorageSync('serviceId', window.document.getElementById('serviceId').value)
        window.hilink.setStorageSync('characteristicId', window.document.getElementById('characteristicId').value)

        setConfDiv.innerHTML = '<div style="background-color: white;margin-top: 10px;">' +
                '<br>设备ID:' + window.hilink.getStorageSync('deviceId')+
                '<br>serviceId 服务UUID:'+ window.hilink.getStorageSync('serviceId')+
                '<br>characteristicId 特征码UUID:'+ window.hilink.getStorageSync('characteristicId')+
                '</div>'
    }

    function reConf()
    {
        var setConfDiv = window.document.getElementById('setConfDiv');
        window.hilink.setStorageSync('deviceId', '')
        window.hilink.setStorageSync('serviceId', '')
        window.hilink.setStorageSync('characteristicId','')
        setConfDiv.innerHTML = ' <div style="background-color: white;margin-top: 10px;">'+
                '<input id="deviceId" type="text" placeholder="ED14081B-52B5-544B-A211-45FAE38CE869"> 设备ID'+
                '</div>'+
                '<div style="background-color: white;margin-top: 10px;">'+
                '<input id="serviceId" placeholder="0000ffe1-0000-1000-8000-00805f9b34fb"> serviceId 服务UUID'+
                '</div>'+
                '<div style="background-color: white;margin-top: 10px;">'+
                '<input id="characteristicId" placeholder="0000ffe1-0000-1000-8000-00805f9b34fb"> characteristicId 特征码UUID'+
                '</div>'
    }

    window.hilink.setStorageSync = function(key,val){
        window.document.getElementById(key+'def').value = val;
    }

    window.hilink.getStorageSync = function(key){
        return window.document.getElementById(key+'def').value;
    }

</script>

<!--CRCSTUFF-->
<script>
    var _CRCJS = {};

    _CRCJS.crcHi = [
        0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
        0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
        0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
        0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
        0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,
        0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
        0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
        0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
        0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
        0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
        0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
        0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
        0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
        0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
        0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
        0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
        0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
        0x40
    ];

    _CRCJS.crcLo = [
        0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,
        0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,
        0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD,
        0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
        0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,
        0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,
        0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE,
        0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
        0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,
        0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
        0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,
        0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
        0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,
        0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
        0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,
        0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
        0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,
        0x40
    ];

    _CRCJS.calculateCRC = function (buffer, dataLength) {
        var usCRCHi = 0xFF;
        var usCRCLo = 0xFF;
        var returnResult = [0x00, 0x00, 0x00];
        var index = 0;
        var messageIndex = 0;
        while (dataLength > 0) {
            index = ((usCRCLo ^ buffer[messageIndex]) & 0xff);
            usCRCLo = (usCRCHi ^ _CRCJS.crcHi[index]);
            usCRCHi = _CRCJS.crcLo[index];
            messageIndex++;
            dataLength--;
        }
        //0th item is crcLo
        returnResult[0] = usCRCLo & 0xff;
        //1st item is crcHi
        returnResult[1] = usCRCHi & 0xff;
        //2nd item is the total CRC16.
        //returnResult[2] = Convert.ToByte((usCRCHi << 8 | usCRCLo));
        return returnResult;
    }

    _CRCJS.getF06String = function(SlaveAddr,RegAddr,Value)
    {
        var buffer = new Array;
        buffer[0] = SlaveAddr;
        buffer[1] = 0x06;
        buffer[2] = ((RegAddr >>8)&0xff);
        buffer[3] = RegAddr&0xff;
        buffer[4] = Value>>8;
        buffer[5] = Value&0xff;
        var crc = _CRCJS.calculateCRC(buffer,6);
        buffer[6] = crc[0];
        buffer[7] = crc[1];
        return buffer;
    }

    _CRCJS.getF03String = function(SlaveAddr,RegAddr,Value)
    {
        var buffer = new Array;
        buffer[0] = SlaveAddr; //设备地址
        buffer[1] = 0x03; //功能码
        buffer[2] = ((RegAddr >>8)&0xff); //寄存器地址
        buffer[3] = RegAddr&0xff;  //寄存器地址
        buffer[4] = Value>>8; //数据长度
        buffer[5] = Value&0xff;  //数据长度
        var crc = _CRCJS.calculateCRC(buffer,6);
        buffer[6] = crc[0]; //CRC校验
        buffer[7] = crc[1]; //CRC校验
        return buffer;
    }

    _CRCJS.receiver = function(dataList)
    {
        var arr =new Array;
        var startReg = 50;
        var lenthReg = dataList[2]/2;
        if(dataList[0] == 1&&dataList[1]==3) {
            var BytesToSend= dataList[2] + 5;
            var crc = _CRCJS.calculateCRC(dataList,BytesToSend-2);
            if(crc[0] == (dataList[BytesToSend - 2] & 0xff ) && (crc[1]== (dataList[BytesToSend-1] & 0xff))) {
                for(var i=0; i<lenthReg;i++) {
                    var dat = (((dataList[3 + 2 * (i)] & 0xff) << 8) | (dataList[3 + 2 * (i) + 1] & 0xff));
                    arr.push({"starReg": startReg + i, "data": dat});
                }
            }
        }
        return arr;
    }

    _CRCJS.corwork = function()
    {

    }

    var data = writeTo16([1,3,0,50,0,30,100,13]);
    function writeTo16(dataArr) {
        var newstr = '';
        for(var i = 0;i< dataArr.length;i++) {
            var str16 = (Array(2).join(0) + dataArr[i].toString(16)).slice(-2);
            newstr += str16
        }
        return newstr;
    }
    console.log(data)
</script>
</body>
</html>